package py.com.erpone.session.dm.list;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import py.com.erpone.entity.dm.OrdenCompra;
import py.com.erpone.entity.dm.Presentacion;
import py.com.erpone.entity.dm.SolicitudCotizacion;
import py.com.erpone.entity.dm.SolicitudPedido;
import py.com.erpone.entity.dm.SolicitudPedido;
import py.com.erpone.util.LocaleSelector;



@Stateless
@LocalBean
@Named
public class OrdenCompraList {
	
	@PersistenceContext
	private EntityManager em;
	LocaleSelector localeSelector;
	
	@SuppressWarnings("unchecked")
	public List<OrdenCompra> findAll(){
		List<OrdenCompra> result=(List<OrdenCompra>)em.createNamedQuery("ordenCompra.all").getResultList();
		for (OrdenCompra sp : result) {
			if(sp !=null && !sp.getSituacion().trim().isEmpty()){
				sp.setSituacionExtenso(this.getSituacionExtenso(sp.getSituacion(), sp.getListSituacion()));
			}
		}
		return result;
	}
	public String getSituacionExtenso(String key, HashMap<String, String> listSituacion) {
		localeSelector = new LocaleSelector();
		String retorno = key;
		Map<String, String> map = listSituacion;
		for (Map.Entry<String, String> entry : map.entrySet()){
			if(key.equals(entry.getValue())){
				return localeSelector.getMensaje("situacion."+entry.getKey());
			}
		}		
		return retorno;
	}

	@SuppressWarnings("unchecked")
	public List<OrdenCompra> ImportarARecepcionPedido(){
		List<OrdenCompra> result=(List<OrdenCompra>)em.createNamedQuery("ordenCompra.importarARecepcionPedido").getResultList();
		for (OrdenCompra sp : result) {
			if(sp !=null && !sp.getSituacion().trim().isEmpty()){
				sp.setSituacionExtenso(this.getSituacionExtenso(sp.getSituacion(), sp.getListSituacion()));
			}
		}
		return result;
	}
	
	public OrdenCompra findById(Long id){
		return em.find(OrdenCompra.class, id);
	}
	
}
